home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Forever 4
/
Atari Forever 4.zip
/
Atari Forever 4.iso
/
SERIE_AI
/
AI_076
/
STARF15S.LZH
/
STARFAX
/
FDDKIT.FTQ
/
FDDKIT.TXT
< prev
next >
Wrap
Text File
|
1993-06-08
|
5KB
|
120 lines
Readme zum STARFAX - 'FDDKIT' 07.06.93
Mit dem beiliegendem BASIC Source-code sollte jeder, der etwas besser
programmieren kann, in der Lage sein, seine eigenen FAX-Treiber zu
erstellen. Der Quellcode kann in GFA-Basic mit 'Merge' geladen werden.
Beiliegend befinden sich noch ASSEMBLER-Inline-Codes, welche in die
INLINE-Zeilen (auf die Zeilen gehen und dann HELP drücken!)
eingeladen werden müssen.
Das weitere Konzept ist eigentlich ganz einfach:
Zuerst wird in einem Speicherbereich die Fax-Seite als großes,
üblicherweise 1728 Pixel breites, Rasterbild aufgebaut.
(Das ist eigentlich für euch das schwierigste an der Sache.)
Ich empfehle dafür 256 Bytes pro Rasterzeile zu verwenden.
Nun muß man nur noch die Procedure 'Sicher_seite' aufrufen und
als Parameter die Speicher-Adresse und Zeilenzahl der Seite angeben.
Fertig! War doch nicht so kompliziert, oder?
So, nun für alle BASIC-Hasser, Assembler-Freaks, Neugierige und
die, die nicht meinen GFA-Basic Sourcecode verwenden wollen, folgt
nun noch eine Beschreibung der Parameter für die Assembler(Inline) -Routiene:
Die Routiene muß irgendwie das Listing eingebunden werden. Dies geschieht
z.B: in GFABASIC über INLINE, im TURBO-ASSEMBLER über IBYTES 'Dateiname':
INLINE faxdrive%,2100
Nun wird ein 5-stelliger String mit den ersten 5 Buchstaben für den
Dateinamen bestimmt.
a$="BILD_"
Nun gibt es bisher 4 Funktionen:
Funktion 1: Datei anlegen
=========================
Nun ruft man den Assembler-Code mit Parameter 1 (für Datei-anlegen)
und den Dateinamen-Anfang auf. Die Parameter werden auf dem STack als
WORDs und LONGS übergeben. ( Die Funktionsnummer kommt _zuletzt_ auf den
STack ! )
~C:faxdrive%( 1 , L: V: a$ )
| |
Funktionsnr. für neue Datei LONG:Zeiger auf Dateiname
Nach dem Aufruf der Funktion ist die Datei bereits angelegt.
Man braucht sich um Dateipfade etc.. _NICHT_ zu kümmern, das geschieht
anhand der Datei STARCALL.SET automatisch.
Diese Funktion muß immer aufgerufen werden, bevor Daten geschrieben werden.
Funktion 2: Daten schreiben
===========================
Mit Parameter 2 werden Daten einer Rastergrafik aus dem Speicher
in die bestehende Datei geschrieben. Die Rastergrafik sollte
1728 Pixel breit sein, mit links und rechts ca. 64 Pixel Rand.
Für den Aufbau der Seite im Speicher empfehle ich eine Breite
von 256 Bytes pro Zeile (2048 Pixel).
~C:faxdrive%(2, L: faxbild% , 256, lines& ) !FAX-Daten sichern
| | | |
Funktionsnr.-+ | | +-- Anzahl Raster-Zeilen
| |
LONG: Adresse der Daten-+ +- Breite des Rasters in Bytes
Trotz Assembler-Code dauert das Codieren und Sichern einer Seite
noch eine ganze Zeit. Ich emfpfehle, die zu erstellenden Seite
in mehre Teilstücke zu zerlegen, und die Funktion mehrmals aufzurufen,
so kann z.B. eine Ausgabe der Konvertierung in % gemacht werden, oder
anderes Dargestllt werden. (Ich verändere gerne den Mauszeiger)
Funktion 3: Titel einfügen
==========================
Fügt die Datei FAX_HEAD.FAH aus dem Sende-Verzeichnis als Kopfzeile
ein. Diese Funktion sollte normalerweise vor Funktion 2 ausgeführt werden.
~C:faxdrive%(3) !Fügt einen Titel ein
Funktion 4: Faxdatei abschließen
================================
Die mit Funktion 1 geöffnete FAX-Datei wird abgeschlossen.
~C:faxdrive%(4) !Close File
Funktion 5: Datei wiedereröffnen
================================
Öffnet die mit Funktion 1 zuletzt erstellte Datei erneut, wenn Sie bereits
mit Funktion 4 geschlossen wurde. Für die programmierung eigener
Fax-Treiber ist das sicher uninteressant, aber weil es die Funktion gibt,
habe ich Sie auch dokumentiert. Ich brauchte Sie z.B. für den Calamus-
Treiber.
~C:faxdrive%(5) !Reopen File
Zum Schluss:
============
- Der Fax-treiber ist Multi-Tos-tauglich und kann Faxe im Hintergrund
erstellen. Ein Warten ist dann nicht mehr nötig.
- Übrigens: ein FAX hat 1728 Pixel/Zeile bei 196 DPI, sollte 2200 Zeilen
nicht überschreiten.
- Für Zeichensätze empfehle ich eine Größe von ca. 16*32 Pixel, das
reicht für mehr als 100 Zeichen/Zeile und mehr als 65 Zeilen.
- Programmiertip: Zum Erstellen der großen FAX-Seiten sind die VDI-Raster-
funktionen COPY_RASTER ganz hilfreich.
- Fax-Seiten sind natürlich monochrome, also bitte 1 Bitplane!
- Bitte sendet mir selbst erstellte Fax-Treiber zu, ich kann Sie dann
auch anderen Usern zur Verfügung stellen. Gibt dann auch eine kleine
Gegenleistung dafür.
So, das wars. Bei Fragen ruft mich doch einfach mal an.
Ingo Linkweiler (INLI)